PostgreSQL pg_wait_sampling 安装与配置
1 背景知识
本文主要介绍如何在 PostgreSQL16 环境下使用源码安装 pg_wait_sampling 插件。
2 先决条件
- PostgreSQL 需要 9.6 版本及以上。
- 从源码构建和部署 PostgreSQL。
- 设置 pg_config 命令在环境变量
PATH
中。
3 pg_wait_sampling 安装
3.1 源码下载
下载 pg_wait_sampling 最新源码,到 /soft
文件夹。
su - postgres
#postgre>
cd /soft
git clone https://github.com/postgrespro/pg_wait_sampling.git
cd pg_wait_sampling
make USE_PGXS=1 && make USE_PGXS=1 install
3.2 数据库配置
3.2.1 配置 pg_stat_statements 插件
由于 pg_wait_sampling 还需要收集 pg_stat_statements 扩展提供SQL 语句的执行计划,所以需要一起配置。
3.2.2 配置 pg_wait_sampling 插件
此插件在启动数据库时,必须使用共享缓存用于存放计数器。所以需要配置 shared_preload_libraries 参数。并且还需要配置 pg_wait_sampling 插件。
#postgre>
vi $PGDATA/postgresql.conf
# postgresql.conf
shared_preload_libraries = 'pg_wait_sampling,pg_stat_statements'
重启数据库之后,在每个数据库中安装扩展。
pg_ctl restart -D $PGDATA
waiting for server to shut down.... done
server stopped
waiting for server to start....2024-06-11 14:41:53.143 CST [56329]LOG: 00000: redirecting log output to logging collector process
2024-06-11 14:41:53.143 CST [56329]HINT: Future log output will appear in directory "pg_log".
2024-06-11 14:41:53.143 CST [56329]LOCATION: SysLogger_Start, syslogger.c:712
done
server started
su - postgres
#postgres>
psql -U postgres -d testdb -c "CREATE EXTENSION pg_wait_sampling CASCADE;"
psql -U postgres -d postgres -c "CREATE EXTENSION pg_wait_sampling CASCADE;"
psql -U postgres -d template1 -c "CREATE EXTENSION pg_wait_sampling CASCADE;"
4 pg_wait_sampling 配置
此处使用 pg_wait_sampling 扩展的默认配置,关于默认参数的详细说明,请参考 pg_wait_sampling 参数 章节。